#include "widget.h"
#include "director.h"

#include <string>
#include <iostream>

using namespace std;

////////////////////////////////////////////////////

Widget::Widget(DialogDirector* pDir)
{
	m_pDir = pDir;
}

void Widget::changed()
{
	m_pDir->changed(this);
}

////////////////////////////////////////////////////

void EntryWidget::setText(const char* str)
{
	m_sText = str;
	changed();
}

const char* EntryWidget::getText()
{
	return m_sText.c_str();
}

////////////////////////////////////////////////////

ListWidget::ListWidget(DialogDirector* pDir) : Widget(pDir)
{
	m_index = -1;

	m_vect.push_back("apple");
	m_vect.push_back("banana");
	m_vect.push_back("pear");
}

void ListWidget::setSelectIndex(int index)
{
	if (index < m_vect.size())
	{
		m_index = index;
		changed();
	}
}

const char* ListWidget::getSelectText()
{
	if (m_index >= 0 && m_index < m_vect.size())
	{
		return m_vect[m_index].c_str();
	}
	else
	{
		return "";
	}
}

////////////////////////////////////////////////////

void ButtonWidget::click()
{
	if (m_bEnable)
	{
		changed();
	}
	else
	{
		cout<<"This button is not enabled!"<<endl;
	}
}

bool ButtonWidget::getEnable()
{
	return m_bEnable;
}

void ButtonWidget::setEnable(bool enable)
{
	m_bEnable = enable;
}

////////////////////////////////////////////////////


